09a367d2002927bd281a67afef577668be672ac3,src/main/org/codehaus/groovy/transform/StaticTypesTransformation.java,Visitor,visitMethodCallExpression,#MethodCallExpression#,265

Before Change


                addStaticTypeError("cannot resolve dynamic method name at compile time.", call.getMethod());
            } else {
                ClassNode[] args = getArgumentTypes(InvocationWriter.makeArgumentList(call.getArguments()), classNode);
                MethodNode mn = findMethodOrFail(call, getType(call.getObjectExpression(), classNode), call.getMethodAsString(), args);
                if (mn==null) return;
                storeType(call, mn.getReturnType());
            }
        }

After Change


                addStaticTypeError("cannot resolve dynamic method name at compile time.", call.getMethod());
            } else {
                ClassNode[] args = getArgumentTypes(InvocationWriter.makeArgumentList(call.getArguments()), classNode);
                final Expression objectExpression = call.getObjectExpression();
                final ClassNode receiver = getType(objectExpression, classNode);
                MethodNode mn = findMethod(call, receiver, name, args);
                if (mn==null) {
                    if (objectExpression instanceof VariableExpression) {
                        VariableExpression variableExpression = (VariableExpression) objectExpression;
                        if (!temporaryIfBranchTypeInformation.isEmpty()) {
                            final Map<Expression, List<ClassNode>> tempo = temporaryIfBranchTypeInformation.peek();